// FileName: UserModel.ts
// ProjectName: miu-club-html
// 作者：区区电脑
// createTime: 2019/9/30

import {Model} from "@/common/Common";
import Request, {RequestPath, RequestResult} from "@/common/Request";

export default class UserModel extends Model{
    // 支付宝二维码图片地址
    public alipayImageUrl?:string;
    // 见点数量"
    public bonusRate?:number;
    // 银行名称
    public cardName?:string;
    // 银行卡号"
    public cardNumber?:string;
    // 邀请码
    public code?:string;
    // 创建时间
    public createDate?: string;
    // 删除标记 0 正常 1 已删除
    public delFlag?:number;
    // 用户编号
    public id?:number;
    // 身份证号
    public idNumber?:string;
    // 手机号
    public mobile?:string;
    // 姓名
    public name?:string;
    // 昵称
    public nickName?:string;
    // 父级编号
    public parentId?:number;
    // 父级列表
    public parentIds?:string;
    // 头像
    public photo?:string;
    // 用户状态 1 正常 2 锁定 3 冻结
    public status?:number;
    // 下线数量
    public subNum?:number;
    // 修改时间
    public updateDate?:string;
    // 用户级别
    public userLevel?:number;
    // 会员支付ADS数量
    public vipAdsAmount?:number;
    // 会员结束时间
    public vipEndTime?:string;
    // 会员级别
    public vipLevel?:number;
    // 成为会员开始时间
    public vipStartTime?:string;
    // 微信二维码图片地址
    public wechartImageUrl?:string;
    /**
     * 获取用户信息
     * @param fromServe
     * @param params
     */
    public static getUserInfoFromServe:Function = (params: any, fromServe: boolean):Promise<UserModel | boolean> => {
        return new Promise((resolve, reject) => {
            // eslint-disable-next-line no-constant-condition
            if (fromServe || 'fromLocal === null' ) {
                // 从网络获取
                let request:Request = new Request();
                request.start({
                    path: new RequestPath().getInfo,
                    params: params,
                    loadingMsg: '正在请求用户信息...'
                }).then((r: RequestResult) => {
                    if (r.success) {
                        let user:UserModel = UserModel.getModel(r.data);
                        resolve(user);
                    } else {
                        resolve(false);
                    }
                })
            } else {
                // 从本地获取
                resolve(false);
            }

        });
    };
}
